1. Field of the Invention
The present invention relates to a license management system in which a terminal apparatus and a server apparatus are connected via a network, and the server apparatus manages a license of software in the terminal apparatus, and an authentication method for the same.
2. Description of the Related Art
When selling software desired by a user, a software vendor issues the user a license that grants the use of the software. Here, the license is distributed along with the software to the user as a license access number, which is a combination of alphanumeric characters. Such a license access number (LA#) is a number uniquely assigned to each software package, and is necessary when requesting a license server to issue license information. It is sufficient for a license access number to be information necessary to make access for the purpose of license acquisition. For example, a license access number may be a code including characters and symbols, and in such a case, the license access number may be called a license access code or a license access key.
If a user (purchaser) in possession of a license discloses license access number information to a third party, it is possible for the third party to freely use the software to which the license access number was assigned. In other words, unless authentication is performed on a specified device such as a personal computer that runs the software, it is possible for the license key to be used to run the software in an arbitrary device. As a result, it is possible to create an unauthorized copy of the software that can be used by someone other than the legitimate user.
In order to prevent this, a network system is known in which communication is performed between a client terminal apparatus and a server apparatus via a network. Note that the client terminal apparatus represents one form of a terminal apparatus, and these apparatuses are equivalent in the following description.
Here, the server apparatus receives a license access number and terminal identification information that is associated with device information from the client terminal apparatus. The server apparatus determines whether the received terminal identification information and stored terminal identification information match, and transmits the result of the determination to the client terminal apparatus. When launching stored software for the first time, the terminal apparatus generates terminal identification information based on device information, and transmits the terminal identification information to the server apparatus along with a license access number. The terminal apparatus then receives, from the server apparatus, license information for determining whether the software can be used in accordance with the terminal identification information that was transmitted. The terminal identification information that was transmitted is saved to a local disk. When launching the software for the second time or thereafter, the client terminal apparatus acquires the device information, and generates terminal identification information based on the device information using the same method as when the software was launched for the first time. The client terminal apparatus compares this terminal identification information and the terminal identification information from when the software was launched for the first time that is stored in the local disk, launches the software if they match, and does not launch the software if they do not match.
If a client terminal apparatus that has a license access number has been authenticated using this system, it is possible to prevent unauthorized copying and use of the software by an apparatus other than that client terminal apparatus. See Japanese Patent No. 3833652 and Japanese Patent Laid-Open No. 2004-46708 for examples of such technology.
The above-described conventional technology proposed the idea of generating the terminal identification information based on specified device information. One example of the device information that is used is ID information (HDD ID) of the hard disk drive (HDD) connected to the client terminal apparatus. However, this case has problems such as those described below.
(1) Uniqueness of Terminal Identification Information
Although this HDD ID information is basically assigned uniquely, if the same virtualization software is used, there is known to be a phenomenon in which this HDD ID information is not unique. Consider the case in which the same virtualization software is used in personal computers (PCs) that are physically different. Virtualization software creates virtual hardware including a virtual hard disk, and can implement virtual PCs. Also, software can be installed in such virtual PCs. If HDD IDs are acquired in this situation, they will be the same value. This causes a situation in which the terminal identification information generated based on these HDD IDs will be the same. If this terminal identification information is the same, it is possible for a license access number having only one right to be used in multiple virtual PCs.
Also, it is known that user information is managed using this terminal identification information as a key. For this reason, management-related problems arise if this terminal identification information is not generated uniquely. Uniqueness is therefore required for terminal identification information.
(2) Restorability of Terminal Identification Information
There are cases where a hard disk drive needs to be replaced due to damage or the like. In such cases, the HDD ID changes after replacement, and thus the terminal identification information is always different before and after replacement. As a result, when license re-authentication is performed, the client terminal apparatus transmits terminal identification information that is different from the initially generated terminal identification information that was transmitted to the server apparatus, and the re-authentication fails. As such, after authentication has once been performed using terminal identification information, this terminal identification information used during initial authentication is necessary when re-authentication is performed.
In consideration of user convenience, there is demand for a system in which hardware can be replaced to some degree, that is to say, demand for the ability to restore terminal identification information if it has become ineffective for some sort of reason.
(3) Failure in Hardware Information Acquisition
There are cases in which the acquisition of HDD ID information fails depending on the drive specifications of the HDD. If the acquisition fails, the terminal identification information needs to be generated by some other method. Accordingly, a stable method for generating terminal identification information is required. Although the example of an HDD ID has been used here, depending on the type and model of PC, there is generally no guarantee that such information can be obtained from hardware information of hardware other than an HDD.
(4) Stability of Terminal Identification Information Generation
Also, in the case of a RAID environment in which multiple hard disks are combined and operate as a single virtual hard disk, there are nevertheless cases in which, depending on the drive specifications of the HDD, the HDD ID changes due to a trigger such as restarting the terminal. Instability in the HDD ID will result in a failure when the software is launched for the second or subsequent time. Accordingly, stability is required in the acquisition of hardware information.